package com.comment.pojo.domain.logic.core;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.Map;


import com.comment.config.dao.typeHandler.KV_LongInteger_Handler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.extern.slf4j.Slf4j;

/**
 * (CoreBattleTaskLeaveReward)表实体类
 *
 * @author cxy
 * @since 2024-11-20 20:15:59
 */
@Slf4j
@ApiModel("奖励")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@TableName(autoResultMap = true)
public class CoreBattleTaskLeaveReward extends Model<CoreBattleTaskLeaveReward> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键")
    private Long id;
    
    @ApiModelProperty("赛季")
    private Integer season;
    
    @ApiModelProperty("战令等级")
    private Integer level;

    @TableField(typeHandler = KV_LongInteger_Handler.class)
    @ApiModelProperty("普通奖励")
    private Map<Long,Integer> generalAward;

    @TableField(typeHandler = KV_LongInteger_Handler.class) 
    @ApiModelProperty("进阶奖励")
    private Map<Long,Integer> advancedAward;

    @ApiModelProperty("升级积分")
    private Integer levelExp;
    
    @ApiModelProperty("总积分")
    private Integer totalExp;
    
    @ApiModelProperty("下一级的所有经验(消耗元宝)")
    private Integer cost;
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = -89282048279059394L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.id;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////  基础数据初始化
    public CoreBattleTaskLeaveReward init() {
         // log.info("初始化数据:CoreBattleTaskLeaveReward{}",this);
        return this;
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 领域业务
}

